#ifndef COMMON_H
#define COMMON_H

class Common
{
public:
	/* Exit callback */
	static int exit_callback(int arg1, int arg2, void *common)
	{
		sceKernelExitGame();
		return 0;
	}

	/* Callback thread */
	static int CallbackThread(SceSize args, void *argp)
	{
		int cbid;
		cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
		sceKernelRegisterExitCallback(cbid);
		sceKernelSleepThreadCB();
		
		return 0;
	}

	/* Sets up the callback thread and returns its thread id */
	static int SetupCallbacks(void)
	{
		int thid = 0;
		thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, PSP_THREAD_ATTR_USER, 0);

		if (thid >= 0)
			sceKernelStartThread(thid, 0, 0);

		return thid;
	}
};
#endif